jmp near start

mytext: db '1+2+3+...+100='

start:

mov ax,0xb800
mov es,ax

mov ax,0x07c0
mov ds,ax

mov si,mytext
mov di,0
mov cx,(start-mytext)

cdis:
mov al,[si]
mov ah,0x07
mov [es:di],ax
inc si
add di,2
loop cdis

xor ax,ax
mov cx,1
clac:
add ax,cx
inc cx
cmp cx,100
jle clac

;init stack
xor cx,cx
mov ss,cx
mov sp,cx

mov bx,10
xor cx,cx
digit:
xor dx,dx
div bx
push dx
inc cx
cmp ax,0
jne digit

;display
display:
pop ax
or al,0x30
mov ah,0x07
mov [es:di],ax
add di,2
loop display

jmp near $
times 510-($-$$) db 0
dw 0xaa55